home *** CD-ROM | disk | FTP | other *** search
- //---------------------------------------------------------------------------
- #include <vcl\vcl.h>
- #pragma hdrstop
-
- #include "bcb_pgm.h"
- #include "fce.h"
-
- #define MAX_BUF 2048
-
- #define GET_FILE_CMD 1
- #define PUT_FILE_CMD 2
- #define DEL_FILE_CMD 3
-
- static int CommandButton = 0;
-
- static char Server[64] = "\0";
- static char Username[40] = "\0";
- static char Password[40] = "\0";
-
- static char Filename[64] = "\0";
- static char Temp[128] = "\0";
- static char DataBuffer[MAX_BUF];
- //---------------------------------------------------------------------------
- #pragma resource "*.dfm"
- TFtpForm *FtpForm;
- //---------------------------------------------------------------------------
- __fastcall TFtpForm::TFtpForm(TComponent* Owner)
- : TForm(Owner)
- {int Version;
- int Build;
- AnsiString Text;
- FtpForm->Cursor = crArrow;
- fceAttach(1);
- Version = fceGetInteger(0,FCE_GET_VERSION);
- Build = fceGetInteger(0,FCE_GET_BUILD);
- wsprintf(Temp,"FCE32 Version: %1d.%1d.%1d Build %d",
- 0x0f&(Version>>8),0x0f&(Version>>4),0x0f&Version,Build);
- eDisplay->Lines->Add(Temp);
- fceGetString(0,FCE_GET_REGISTRATION,Temp,127);
- eDisplay->Lines->Add(Temp);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::mExitClick(TObject *Sender)
- {fceClose(0);
- fceRelease();
- Close();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::mConnectClick(TObject *Sender)
- {int Code;
- fceSetString(0,FCE_SET_LOG_FILE,(LPSTR)"bcb_pgm.log");
- // get Server info from form
- eServer->GetTextBuf((char *)Server, 64);
- if(strlen(Server)<=1)
- {eDisplay->Lines->Add("'Server' field is empty!");
- return;
- }
- // get Username info from form
- eUsername->GetTextBuf((char *)Username, 40);
- if(strlen(Username)<=1)
- {eDisplay->Lines->Add("'Username' field is empty!");
- return;
- }
- // get Password info from form
- ePassword->GetTextBuf((char *)Password, 40);
- if(strlen(Password)<=1)
- {eDisplay->Lines->Add("'Password' field is empty!");
- return;
- }
- // attempt to connect
- FtpForm->Cursor = crHourGlass;
- eDisplay->Lines->Add("Connecting...");
- Code = fceConnect(0,
- (LPSTR)Server,
- (LPSTR)Username,
- (LPSTR)Password);
- FtpForm->Cursor = crArrow;
- if(Code>=0)
- {eDisplay->Lines->Add("Connection completed.");
- mBinary->Enabled = true;
- mAscii->Enabled = true;
- mList->Enabled = true;
- mGetFile->Enabled = true;
- mPutFile->Enabled = true;
- mDelFile->Enabled = true;
- mConnect->Enabled = false;
- }
- else
- {eDisplay->Lines->Add("Unable to connect.");
- fceErrorText(0,Code,(LPSTR)Temp,127);
- eDisplay->Lines->Add(Temp);
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::mAsciiClick(TObject *Sender)
- {int Code;
- Code = fceSetMode(0,'A');
- if(Code<0)
- {fceErrorText(0,Code,(LPSTR)Temp,127);
- eDisplay->Lines->Add(Temp);
- }
- else eDisplay->Lines->Add("Transfer mode is set to ASCII");
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::mBinaryClick(TObject *Sender)
- {int Code;
- Code = fceSetMode(0,'B');
- if(Code<0)
- {fceErrorText(0,Code,(LPSTR)Temp,127);
- eDisplay->Lines->Add(Temp);
- }
- else eDisplay->Lines->Add("Transfer mode is set to BINARY");
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::mListClick(TObject *Sender)
- {int Code;
- FtpForm->Cursor = crHourGlass;
- mList->Enabled = false;
- Code = fceGetList(0,FCE_FULL_LIST,(LPSTR)DataBuffer,MAX_BUF);
- if(Code<0)
- {fceErrorText(0,Code,(LPSTR)Temp,127);
- eDisplay->Lines->Add(Temp);
- }
- else
- {eDisplay->Lines->Add(DataBuffer);
- eDisplay->Lines->Add("[END]");
- }
- mList->Enabled = true;
- FtpForm->Cursor = crArrow;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::mGetFileClick(TObject *Sender)
- {
- mGetFile->Enabled = false;
- eFilename->Visible = true;
- lFilename->Visible = true;
- bFilename->Caption = "GET";
- bFilename->Visible = true;
- CommandButton = GET_FILE_CMD;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::mPutFileClick(TObject *Sender)
- {
- mGetFile->Enabled = false;
- eFilename->Visible = true;
- lFilename->Visible = true;
- bFilename->Caption = "PUT";
- bFilename->Visible = true;
- CommandButton = PUT_FILE_CMD;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::mDelFileClick(TObject *Sender)
- {
- mGetFile->Enabled = false;
- eFilename->Visible = true;
- lFilename->Visible = true;
- bFilename->Caption = "DEL";
- bFilename->Visible = true;
- CommandButton = DEL_FILE_CMD;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFtpForm::bFilenameClick(TObject *Sender)
- {int Code;
- int Len;
- // get filename info from form
- eFilename->GetTextBuf((char *)Filename, 64);
- Len = strlen(Filename);
- if(Len<=1)
- {eDisplay->Lines->Add("'Filename' field is empty!");
- mGetFile->Enabled = true;
- mPutFile->Enabled = true;
- mDelFile->Enabled = true;
- return;
- }
- // strip trailing linefeed, if any.
- if(Filename[Len-1]=='\n')
- {Filename[Len-1] = '\0';
- Len--;
- }
- // strip trailing carriage return, if any.
- if(Filename[Len-1]=='\r')
- {Filename[Len-1] = '\0';
- Len--;
- }
- // disable menu buttons
- mGetFile->Enabled = false;
- eFilename->Visible = false;
- lFilename->Visible = false;
- bFilename->Visible = false;
- FtpForm->Cursor = crHourGlass;
- // execute the operation
- switch(CommandButton)
- {case GET_FILE_CMD:
- wsprintf(Temp,"Downloading '%s'", Filename);
- eDisplay->Lines->Add(Temp);
- Code = fceGetFile(0,(LPSTR)Filename);
- mGetFile->Enabled = true;
- break;
- case PUT_FILE_CMD:
- wsprintf(Temp,"Uploading '%s'", Filename);
- eDisplay->Lines->Add(Temp);
- Code = fcePutFile(0,(LPSTR)Filename);
- mPutFile->Enabled = true;
- break;
- case DEL_FILE_CMD:
- wsprintf(Temp,"Deleting %s", Filename);
- eDisplay->Lines->Add(Temp);
- Code = fceDelFile(0,(LPSTR)Filename);
- mDelFile->Enabled = true;
- break;
- default:
- Code = 0;
- break;
- }
- CommandButton = 0;
- // error ?
- if(Code<0)
- {fceErrorText(0,Code,(LPSTR)Temp,127);
- eDisplay->Lines->Add(Temp);
- }
- else eDisplay->Lines->Add("Operation completed.");
- FtpForm->Cursor = crArrow;
- }
- //---------------------------------------------------------------------------
-